import { loginAPI, getUserInfo,getUserPhoto  } from '@/api/user'
import { getToken, removeToken, setToken } from '@/utils/auth'


const mutations = {
  SET_TOKEN: (state, token) => {
    state.token = token
    setToken(token)// 再给本地存一份
  },
  //存储用户个人信息
  setUserInfo:(state,data)=>{
    state.userInfo=data
  }
}

const actions = {
  // user login
  //获取登录信息
  async loginActions(context, data) {
    const { data: res } = await loginAPI(data)
    console.log('login信息', res)
    //提交commit申请
    context.commit('SET_TOKEN', res.data)
  },
  //获取个人信息
  async loadUserInfo(context){
    const {data:res}=await getUserInfo()
    // console.log('用户基本信息',res);
    //根据用户信息中的个人id获取用户头像
    const {data:res1}= await getUserPhoto(res.data.userId)
    // console.log('头像信息',res1);
    //数据合并
    context.commit('setUserInfo',{...res.data,...res1.data})
  },
  //退出登录,清空token和用户个人信息
  loginOut(context){
    //清空token
    context.commit('SET_TOKEN','')
    //清空用户信息
    context.commit('setUserInfo',{})
  }
}

export default {
  namespaced: true,
  state: {
    // vuex的state值,使用本地持久化的(刷新时,去本地中取)
    token: getToken(),
    //存储用户个人信息
    userInfo:{}
  },
  mutations,
  actions
}

